import java.util.Arrays;
import java.util.Scanner;

public class Test {
    public static void main16(String[] args) {
        int[ ] array = {1,2,3,4,5};
        System.out.println(array);//这里打印的是一个类似于地址的东西，array本质是一个变量，里面存放的是地址
        System.out.println("==========");
        //array。length 可以求得数组的长度  数组名.length
        for(int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
        //另外一种打印数组的方式 for-each循环,缺点： 我们不知道我们所打印的元素是数组下标为几的元素
        for (int x :array) {
            //冒号的左边是一个用来接收数组里面的元素的变量 每次只能接收一个元素
            //冒号的右边是数组名
            System.out.print(x + " ");
        }
        System.out.println();
        System.out.println("==============");
        //java帮你实现一个打印数组的方法：将数组里面的值以字符串的形式组织一下然后进行打印 Arrays.toString(数组名) 但是需要导入一个util
        System.out.println(Arrays.toString(array));
    }
    //数组的创建三种方法
    public static void main15(String[] args) {
        int[ ] array = {1,2,3,4,5};
        int[ ] array2 = new int[ ] {1,2,3,4,5,7};
        int[ ] array3 = new int[5];
        //也可以分开写
        int[ ] array4;
        array4 = new int[ ] {1,2,3,4,5,6,7,8,9,10};
        boolean[ ] flag = new boolean[10];//这里默认给数组的初始化的是 false
        String[ ] strings = new String[10];//这里默认初始化为null
        char[ ] chars = new char[10];//这里初始化的是空格
    }
    public static void main14(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < n ; j++) {
                if(i == j || (i+j) == n-1) {
                    System.out.print("*");//这里不能够使用换行
                }else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }
    //上课代码
    public static void main13(String[] args) {
        double sum = 0;
        int flg = 1;
        for(int i = 1; i < 101; i++) {
            sum = sum + flg * 1 * 1.0 / i;
            flg = -flg;
        }
        System.out.println(sum);
    }
    //实现一个方法 avg, 以数组为参数, 求数组中所有元素的平均值(注意方法的返回值类型).
    public static double avg(int[] array) {
        int sum = 0;
        double avg = 0;
        for(int i = 0; i < array.length; i++) {
            sum += array[i];
        }
        avg = sum * 1.0 / array.length;
        return avg;
    }
    public static void main12(String[] args) {
        int[] array = {1,2,3,4,5,6,7,8,9,10};
        System.out.println(avg(array));
    }
    //实现一个方法 sum, 以数组为参数, 求数组所有元素之和.
    public static int sum(int[] array) {
        int sum = 0;
        for(int i = 0; i < array.length; i++) {
            sum += array[i];
        }
        return sum;
    }
    public static void main11(String[] args) {
        int[] array = {1,2,3,4,5,6};
        System.out.println(sum(array));
    }
    //实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上. 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}
    public static void transfrom(int[] array) {
        for(int i = 0; i < array.length; i++) {
            //循环修改数组里面的元素
            array[i] = 2*array[i];
        }
    }
    public static void main10(String[] args) {
        int[] array = {1,2,3,4,5,6};
        transfrom(array);
        for(int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }

    }
    //实现一个方法 printArray, 以数组为参数, 循环访问数组中的每个元素, 打印每个元素的值.
    public static void printArray(int[] Arrays) {
        for(int i = 0; i < Arrays.length; i++) {
            System.out.print(Arrays[i] + " ");
        }
    }
    public static void main9(String[] args) {
        int[] Array = {1,2,3,4,5,6,7,8,9,10};
        printArray(Array);

    }
    //创建一个int类型的数组，元素个数为100，并把每个元素依次设置为1-100
    public static void main8(String[] args) {
        int[] array =new int[100];//创建数组
        for(int i = 0; i < array.length; i++)
        {
            array [i] = i + 1;
        }
        System.out.println(Arrays.toString(array));
    }
    public static void main7(String[] args) {
        int flg = 1;
        double sum = 0;
        for (int i = 1; i <= 100; i++) {
            //产生1-100的数
            sum += flg * (1.0 / i);
            flg = -flg;
        }
        System.out.println(sum);
    }
    public static void main6(String[] args) {
        Scanner scanner = new Scanner(System.in);//输入
        int n = scanner.nextInt();//表示输出的行数，也表示组成“X”的反斜线和正斜线的长度
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < n; j++) {
                if(i == j || i+j == 4) {
                    System.out.print("*");//这里不能使用换行
                } else
                    System.out.print(" ");
            }
            System.out.println();//每完成一行之后就行换行
        }
    }


    public static void main5(String[] args) {
        //递归求n=5的阶乘
        int n = 5;
        int ret = fac(n);
        System.out.println(ret);
    }
    public static int fac(int n) {
        if(n == 1) {
            return 1;
        } else {
            return n*fac(n-1);
        }
    }
    public static void main4(String[] args) {
        System.out.println(sum(1729));
    }
    public static int sum(int n) {
         if(n == 1){
             return 1;
         } else {
             return sum(n/10) + n % 10;
         }
    }
    public static void main3(String[] args) {
        //递归打印1234的每一位  1 2 3 4
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        print(n);
    }
    public static void print(int n) {
        if(n <= 9) {
            System.out.println(n);
        } else {
            print(n / 10);
            System.out.println(n%10);
        }
    }
    public static void main2(String[] args) {
        //用*打印x
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if(i == j || (i+j) == n-1) {
                    System.out.print("*");
                }else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }

    public static void main1(String[] args) {
        //计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
        double sum = 0;
        int flg = 1;
        for(int i = 1; i < 101; i++) {
            //解决方法，将sum换成double类型的，并且1要带一个小数
            sum += flg * 1 * 1.0 / i;
            //sum += flg * 1 / i;//这里i只要比1大，则永远是0
            flg = -flg;
        }
        System.out.println(sum);

    }

}
